From 4e6dc4dee0e1c6407113597180d9616b4f275f94 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Thu, 2 May 2024 14:02:17 +0200
Subject: [PATCH] link with -latomic when needed

Some architecture such as sparc and some flavors of arm needs -latomic
to avoid the following build failure:

gthread-posix.c:(.text+0xda8): undefined reference to `__atomic_compare_exchange_4'

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/4e6dc4dee0e1c6407113597180d9616b4f275f94
---
 glib/meson.build | 1 +
 meson.build      | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/glib/meson.build b/glib/meson.build
index 24cbb664d4..b2dd569e1e 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -419,6 +419,7 @@ libglib = library('glib-2.0',
   include_directories : configinc,
   link_with: [charset_lib, gnulib_lib],
   dependencies : [
+    atomic_dep,
     gnulib_libm_dependency,
     libiconv,
     libintl_deps,
diff --git a/meson.build b/meson.build
index 46c5aa200a..8b42940558 100644
--- a/meson.build
+++ b/meson.build
@@ -2233,6 +2233,15 @@ libffi_dep = dependency('libffi', version : '>= 3.0.0')

 libz_dep = dependency('zlib')

+libatomic_test_code = '''
+  int main (int argc, char ** argv) {
+    return 0;
+  }'''
+atomic_dep = []
+if cc.links(libatomic_test_code, args : '-latomic', name : 'check for -latomic')
+  atomic_dep = cc.find_library('atomic')
+endif
+
 # First check in libc, fallback to libintl, and as last chance build
 # proxy-libintl subproject.
 # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
--
2.44.0

